1. Field of the Invention
The present invention relates to the field of computer animation and, in particular, to choreography of animated crowds.
2. Description of the Related Art
Computer-based animation often involves scenes that include groups of characters, objects, or agents, that are engaged in a particular activity, such as walking, running, standing, or sitting. During an animated scene, such character groups may provide an appropriate backdrop to the central action of the scene. For example, an animated scene that takes place on a populated university campus could involve a large number of medium-scale “ambient” crowd shots, where the crowd includes students, professors, and other characters. Although a crowd shot could be animated by separately rigging and animating each character in the crowd individually, such an approach involves a significant amount of human and computing resources and is, therefore, time and cost prohibitive.
One possible solution to this problem is to set each character in motion autonomously via a crowd simulator, such as a finite state machine (FSM) based crowd animation tool. One drawback with this approach is that such tools are typically configured to animate a group of characters where all characters are of the same type. For example, a crowd simulator could be configured to animate a group of bipedal characters such as human characters. Alternatively, the crowd simulator could be configured to animate a group of quadripedal characters such as horses. However, controlling both types of characters at the same time is often tedious with traditional systems because the set of animation parameters and options for each type of character may not be the same, particular when character types have significantly differing body morphologies. As a result, the animation artist composes different instructions and animation parameters separately for each character type. For crowds that have many types of characters, each with a variety of animation options, such an approach can quickly become burdensome for the animation artist. As a result, an animated crowd scene with varying character types would involve configuring the crowd simulator at least once for each different character type.
Another drawback with this approach is that typical crowd simulators do not handle transitions from one generic set of motions to another generic set of motions at a specific moment in time very well. For example, the animation artist could want a group of characters to stand for some amount of time, and then to begin walking at a certain point in time. In traditional finite state machine setups, the animator typically has to configure this transition uniquely for each type of character. In cases where a scene includes numerous character types, each with a unique set of possible versions of “stand” and “walk” animation sequences, this approach likewise becomes burdensome to the animation artist.